查看原文
其他

TechTalk | Bluenic 之 Azure 数据工厂落地实践

The following article is from 云角 Author 神州数码集团


Bluenic客户数据平台是神州数码针对零售行业开发的一个集数据抓取、数据汇总、数据分析、消费习惯分析、营销战略建议、库存预警等功能为一体的功能性解决方案。Bluenic可整合自有渠道、合作数据源及线上抓取、社交媒体等多方渠道数据,为零售企业呈现基于年龄、性别、产品系列等数据分析报告,帮助零售企业明确消费者画像,更快地精准定位营销市场,最大限度发挥客流价值,加速营销转化。

 

为了能快速对接客户线上、线下、跨渠道的数据,同时节省云资源的消耗成本, Bluenic 客户数据平台充分利用了微软Azure数据工厂服务的数据搬移和编排,ELT和数据转换活动能力。Azure数据工厂在数据转换活动过程中融入一些其他的功能组件,这些组件定制化程度极高,支持Python、Scala开发的转换功能,比如将数据分类汇总,元数据更名等等,非常灵活,能满足数据流应用的各种需求,甚至做到即提即用。

 



Azure 数据工厂介绍



在大数据环境中,原始、散乱的数据通常存储在关系、非关系和其他存储系统中。但是,就其本身而言,原始数据没有适当的上下文或含义来为分析师、数据科学家或业务决策人提供有意义的见解。


大数据需要可以启用协调和操作过程以将这些巨大的原始数据存储优化为可操作的业务见解的服务。Azure 数据工厂是为这些复杂的混合提取-转换-加载 (ETL)、提取-加载-转换 (ELT) 和数据集成项目而构建的托管云服务。

 

Azure 数据工厂是基于云的 ETL 和数据集成服务,可让你创建数据驱动型工作流用于大规模协调数据移动和转换数据。可以使用 Azure 数据工厂创建和计划数据驱动型工作流(称为管道),以便从不同的数据存储引入数据。可以构建复杂的 ETL 流程,用于通过数据流或使用 Azure HDInsight Hadoop、Azure Databricks 和 Azure SQL 数据库等计算服务直观转换数据。


此外,还可以将转换的数据发布到数据存储(例如 Azure SQL 数据仓库),供商业智能 (BI) 应用程序使用。最终,通过 Azure 数据工厂,可将原始数据组织成有意义的数据存储和数据湖,以实现更好的业务决策。

 

具体的Azure 数据工厂介绍及操作方法,如何创建数据工厂,创建数据级,创建管道,运行管道等步骤请参考微软数据工厂官方文档。

 



Azure数据工厂在Bluenic的应用场景



Bluenic旨在帮助客户做线上线下数据收集,但是客户数据特别是线下交易数据使用的终端设备通常会受到设备产品老旧、接口缺少维护、数据孤岛等痛点。为了应对这种情况,Bluenic采用Azure数据工厂,以较小的代码量和开发成本对接线下客户私有网络中的数据。

 


方案及架构



如图所示,部分线下零售商店的POS机没有对接云端网络,造成数据孤岛现象。为了解决这个问题,可以为每个线下商店配置一个边缘计算设备,以用于收集POS机数据并对接网络层;之后,数据抽取层服务由Azure数据工厂配合复制活动中提供的不同种类的集成运行时(Integration Runtime, i.e. IR)实现,在这个场景下,Bluenic使用自承载集成运行时(Self-hosted integration runtime)完成对POS机这种运行在私有网络环境下的数据复制工作;抽取过的数据可以通过Azure数据工厂转存至临时存储介质中保存,做后续数据清洗或其他分析操作。这种数据复制等级的抽取作业可以做到0代码,只需要通过Azure数据工厂的配置工作即可完成。

 

Azure 数据工厂支持以下转换活动,这些活动既可以单独添加到管道,也可以与其他活动关联在一起添加。





Azure 数据工厂利用Spark的具体实践



 Azure数据工厂的管道使用Spark活动以驱动自己的HDInsight集群或按需自动生成/销毁HDInsight集群来执行Spark程序。例如Bluenic需要用Spark Job去执行一个用户标签模型的生成运算,利用Azure 数据工厂可以在需要执行Spark Job 的时候自动生成HDInsight 集群,自动部署,然后当Spark Job完成后自动销毁集群,通过这样的自动化操作可以大幅降低云资源的使用时间,从而为客户节省了资源使用费用。

 

Bluenic用下面的JSON示例定义了一个基本的数据转换活动。只需要简单配置就能轻松实现。

 



下表具体描述了JSON定义中使用的属性:

属性

说明

必选

name

管道中活动的名称。

description

描述活动用途的文本。

type

对于 Spark 活动,活动类型是 HDInsightSpark。

linkedServiceName

运行 Spark 程序的 HDInsight Spark 链接服务的名称。 若要了解此链接服务,请参阅计算链接服务一文。

SparkJobLinkedService

用于保存 Spark 作业文件、依赖项和日志的 Azure 存储链接服务。 如果未指定此属性的值,将使用与 HDInsight 群集关联的存储。 此属性的值只能是 Azure 存储链接服务。

rootPath

包含 Spark 文件的 Azure Blob 容器和文件夹。 文件名称需区分大小写。 有关此文件夹结构的详细信息,请参阅“文件夹结构”部分(下一部分)。

entryFilePath

Spark 代码/包的根文件夹的相对路径 条目文件必须是 Python 文件或 .jar 文件。

className

应用程序的 Java/Spark main 类

参数

Spark 程序的命令行参数列表。

proxyUser

用于模拟执行 Spark 程序的用户帐户

sparkConfig

指定在以下主题中列出的 Spark 配置属性的值:Spark 配置 - 应用程序属性。

getDebugInfo

指定何时将 Spark 日志文件复制到 HDInsight 群集使用的(或者)sparkJobLinkedService 指定的 Azure 存储。 允许的值:None、Always 或 Failure。 默认值:None。


  

 

利用ADF+Spark 作业的可扩展性非常高,对于 Spark 作业,可以提供多个依赖项,例如 jar 包(放在 java CLASSPATH 中)、python 文件(放在 PYTHONPATH 中)和其他任何文件。

 

下面示例显示了一个在 HDInsight 链接服务引用的 Azure Blob 存储中包含两个 Spark 作业文件的存储。

SparkJob1

    main.jar

    files

        input1.txt

        input2.txt

    jars

        package1.jar

        package2.jar

    logs


SparkJob2

    main.py

    pyFiles

        scrip1.py

        script2.py

    logs


云计算技术的革新非常快,微软Azure Data Service 服务也是日新月异。神州数码始终坚持以更好,更新的技术服务客户。

 

应用文档列表:

  • https://docs.azure.cn/zh-cn/data-factory/introduction

  • https://docs.azure.cn/zh-cn/data-factory/tutorial-transform-data-spark-powershell






延展阅读


· 数据中台CDP,为零售CMO解决了什么?

近期热点


· 「创」事记 | 生态共赢升级,神州数码首个自主品牌PC和服务器生产基地在厦落成投产

· 加速奔跑 | “走进神州数码”系列Webinar第二场活动预告

· 神州数码首度入选MSCI中国A股在岸指数 云转型成果提振资本信心



.

.

.

.

.

.

233269



您可能也对以下帖子感兴趣

MyEclipse 2017软件安装教程
.NET云原生应用实践(三):连接到PostgreSQL数据库
大手笔收购,神州数码切入国产高端交换机市场!
数据开发中的引擎如何访问数据湖中的数据?
Apache Hudi 从零到一:理解写入流程和操作(三)

文章有问题?点此查看未经处理的缓存